public class code01s {
    public int kthSmallest(TreeNode root, int k) {
        // 解法二：通过中序遍历直接针对 第k个 最小值进行获取
        // 需要注意的是，二叉搜索树，在中序遍历中，是从小到大递增的规则
        // 这里定义一个栈用来存放当前树中节点的值
        Stack<TreeNode> stack = new Stack<>();
        if(root == null) {
            return -1;
        }
        while(root != null || !stack.isEmpty()) {
            // 针对节点进行存储
            while(root != null) {
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();
            --k;
            if(k == 0) {
                break;
            }
            root = root.right;
        }
        return root.val;
    }
}
